﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using ObjetoNegocio;

namespace Banco
{
    public class UsuarioBD:BancoAbstrato<Usuario>
    {
        public override bool Remover(Usuario t)
        {
            throw new System.NotImplementedException();
        }

        public override bool Atualizar(Usuario t)
        {
            throw new System.NotImplementedException();
        }

        public override List<Usuario> Listar()
        {
            ComandoSql("[dbo].[cons_TBL_Usuario]", CommandType.StoredProcedure);
            return ExecutarConsultarListagem();
        }

        public override Usuario Pesquisar(Usuario usuario)
        {
            ComandoSql("[dbo].[cons_TBL_UsuarioPorFiltro]", CommandType.StoredProcedure);
            AdicionarParametroNulo("@codigo", usuario.Codigo);
            AdicionarParametroNulo("@nome", usuario.Nome);
            AdicionarParametroNulo("@login", usuario.Login);
            AdicionarParametroNulo("@senha", usuario.Senha);
            return ExecutarConsultaObjeto();
        }

        public override void Inserir(Usuario usuario)
        {
            decimal codigo;
            ComandoSql("[dbo].[ins_TBL_Usuario]", CommandType.StoredProcedure);
            AdicionarParametro("@codigo", usuario.Codigo, true);
            AdicionarParametro("@nome", usuario.Nome);
            AdicionarParametro("@login", usuario.Login);
            AdicionarParametro("@senha", usuario.Senha);
            ExecutarComando(out codigo);
            usuario.Codigo = codigo;
        }

        public override bool Existe(Usuario t)
        {
            throw new System.NotImplementedException();
        }

        protected override void MontarObjeto(ref Usuario valor, IDataReader reader)
        {
            if (reader["CODIGO"] != DBNull.Value)
            {
                valor.Codigo = (decimal)reader["CODIGO"];
            }

            if (reader["LOGIN"] != DBNull.Value)
            {
                valor.Login = reader["LOGIN"].ToString();
            }

            if (reader["NOME"] != DBNull.Value)
            {
                valor.Nome = reader["NOME"].ToString();
            }

            if (reader["SENHA"] != DBNull.Value)
            {
                valor.Senha = reader["SENHA"].ToString();
            }
        }
    }
}
